package sorts

// @author xsomnus_xiawenye
// @since 2019/12/29 13:12
// 归并排序

type MergeSort struct {
}

func (m *MergeSort) do(dest *[]int) {
	arr := *dest
	size := len(arr)
	// 如果数组只有1个值或者没有值, 不用排序
	if size < 2 {
		return
	}
	// 找到分割索引
	splitIndex := size / 2

	lCol := arr[:splitIndex]
	lSize := len(lCol)

	if lSize >= 2 {
		m.do(&lCol)
	}

	rCol := arr[splitIndex:]
	rSize := len(rCol)

	if rSize >= 2 {
		m.do(&rCol)
	}

	i, j := 0, 0
	for i < lSize && j < rSize {
		if lCol[i] < rCol[j] {

		} else {

		}
	}

	if i < lSize {

	}

	if j < rSize {

	}
}
